// #include <iostream>
// #include "nvml.h"
// #include <string.h>
// void printGpuInfo()
// {
//     nvmlReturn_t result;
//     unsigned int deviceCount = 0;

//     // 初始化NVML
//     result = nvmlInit();
//     if (result != NVML_SUCCESS)
//     {
//         std::cerr << "Failed to initialize NVML: " << nvmlErrorString(result) << std::endl;
//         return;
//     }

//     // 获取设备数量
//     result = nvmlDeviceGetCount(&deviceCount);
//     if (result != NVML_SUCCESS)
//     {
//         std::cerr << "Failed to get device count: " << nvmlErrorString(result) << std::endl;
//         goto shutdown;
//     }

//     for (unsigned int i = 0; i < deviceCount; ++i)
//     {
//         nvmlDevice_t device;
//         char name[NVML_DEVICE_NAME_BUFFER_SIZE];
//         unsigned int gpuUtilization, memoryUtilization;
//         unsigned int coreClockMHz, memoryClockMHz;

//         // 获取设备句柄
//         result = nvmlDeviceGetHandleByIndex(i, &device);
//         if (result != NVML_SUCCESS)
//         {
//             std::cerr << "Failed to get handle for device " << i << ": " << nvmlErrorString(result) << std::endl;
//             continue;
//         }

//         // 获取设备名称
//         result = nvmlDeviceGetName(device, name, sizeof(name));
//         if (result != NVML_SUCCESS)
//         {
//             strcpy(name, "Unknown");
//         }

//         nvmlUtilization_t utilization;
//         result = nvmlDeviceGetUtilizationRates(device, &utilization);
//         if (result == NVML_SUCCESS)
//         {

//             gpuUtilization = utilization.gpu;
//             memoryUtilization = utilization.memory;

//         }

//         // 获取核心时钟
//         result = nvmlDeviceGetClockInfo(device, NVML_CLOCK_GRAPHICS, &coreClockMHz);

//         // 获取内存时钟
//         result = nvmlDeviceGetClockInfo(device, NVML_CLOCK_MEM, &memoryClockMHz);

//         // 打印信息
//         std::cout << "Device " << i << ": " << name << "\n"
//                   << "  GPU Utilization: " << gpuUtilization << "%\n"
//                   << "  Memory Utilization: " << memoryUtilization << "%\n"
//                   << "  Core Clock: " << coreClockMHz << " MHz\n"
//                   << "  Memory Clock: " << memoryClockMHz << " MHz\n";
//     }

// shutdown:
//     // 关闭NVML
//     nvmlShutdown();
// }

// int main()
// {
//     printGpuInfo();
//     return 0;
// }